home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / modula2 / hk_lib / def_mod / trapdefs.def < prev    next >
Encoding:
Modula Definition  |  1994-09-22  |  7.0 KB  |  161 lines

  1. DEFINITION MODULE  TRAPdefs;
  2.  
  3. (*****************************************************************************)
  4. (* Hier sind alle Deklarationen enthalten, um Betriebssystemaufrufe ueber    *)
  5. (* TRAPs abzusetzen. Da MODULA keine Prozeduren mit variablen Parametern ge- *)
  6. (* stattet, mussten saemtliche bei Betriebssystemaufrufen vorkommende Kombi- *)
  7. (* nationen von Wort- und Langwortparametern beruecksichtigt werden.         *)
  8. (* Dies sind wirklich nur Deklarationen, keine Prozeduraufrufe! Wird eine    *)
  9. (* solche 'Prozedur' im Quelltext mit aktuellen Parametern 'aufgerufen', so  *)
  10. (* wird nur Code zum Ablegen der Parameter ( und der Funktionsnummer ) auf   *)
  11. (* dem Stack und der Trap selbst an der Aufrufstelle erzeugt - kompakter     *)
  12. (* gehts nicht.                                                              *)
  13. (*                                                                           *)
  14. (* Der Name einer Prozedur gibt Aufschluss ueber die Art und Reihenfolge der *)
  15. (* Parameter: Angefangen vom ersten bis zum letzten Parameter wird die       *)
  16. (* Groesse ( w ort  oder l angwort ) angegeben. Haben aufeinanderfolgende    *)
  17. (* Parameter die gleiche Groesse, werden sie mit einem Zaehler vor dem       *)
  18. (* Groessenbuchstaben zusammengefasst. In der Parameterliste ist die Reihen- *)
  19. (* folge der Parameter wegen der Ablagekonvention des Compilers genau umge-  *)
  20. (* kehrt: letzter Parameter zuerst, Funktionsnummer zuletzt.                 *)
  21. (*                                                                           *)
  22. (* Als Beispiel XBIOS2l1w in Assembler:                                      *)
  23. (*                                                                           *)
  24. (*             move.w  p3, -(sp)     * ein Wortparameter -> 1w               *)
  25. (*                                   * zwei Langwortpar. -> 2l               *)
  26. (*             move.l  p2, -(sp)     * oder  pea  p2                         *)
  27. (*             move.l  p1, -(sp)     *    -"-     p1                         *)
  28. (*             move.w  #fnkt, -(sp)                                          *)
  29. (*             trap    #14                                                   *)
  30. (*___________________________________________________________________________*)
  31. (*  06-Mae-90 , Holger Kleinschmidt                                          *)
  32. (*****************************************************************************)
  33.  
  34. FROM  SYSTEM  IMPORT  (* TYPE *) WORD;
  35.  
  36. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  37.  
  38. CONST
  39.       (* 68000-Register, a4 - a7 ( sp ) werden staendig
  40.        * vom System benoetigt
  41.        *)
  42.  
  43.        d0 = 0;     a0 =  8;
  44.        d1 = 1;     a1 =  9;
  45.        d2 = 2;     a2 = 10;
  46.        d3 = 3;     a3 = 11;
  47.        d4 = 4;     a4 = 12;
  48.        d5 = 5;     a5 = 13;
  49.        d6 = 6;     a6 = 14;
  50.        d7 = 7;     sp = 15;
  51.  
  52.     (* Betriebssystem-TRAPs *)
  53.  
  54. CONST
  55.        XBIOStrap  = 4E4EH;
  56.        BIOStrap   = 4E4DH;
  57.        GEMDOStrap = 4E41H;
  58.        GEMtrap    = 4E42H;
  59.  
  60. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  61.  
  62.   PROCEDURE  XBIOS0     ( fnkt         : WORD     ); CODE( XBIOStrap );
  63.  
  64.   PROCEDURE  XBIOS1w    ( p1, fnkt     : WORD     ); CODE( XBIOStrap );
  65.  
  66.   PROCEDURE  XBIOS2w    ( p2, p1, fnkt : WORD     ); CODE( XBIOStrap );
  67.  
  68.   PROCEDURE  XBIOS6w    ( p6, p5, p4,
  69.                           p3, p2, p1,
  70.                           fnkt         : WORD     ); CODE( XBIOStrap );
  71.  
  72.   PROCEDURE  XBIOS1l    ( p1           : LONGCARD;
  73.                           fnkt         : WORD     ); CODE( XBIOStrap );
  74.  
  75.   PROCEDURE  XBIOS3l    ( p3, p2, p1   : LONGCARD;
  76.                           fnkt         : WORD     ); CODE( XBIOStrap );
  77.  
  78.   PROCEDURE  XBIOS1w1l  ( p2           : LONGCARD;
  79.                           p1, fnkt     : WORD     ); CODE( XBIOStrap );
  80.  
  81.   PROCEDURE  XBIOS1w2l  ( p3, p2       : LONGCARD;
  82.                           p1, fnkt     : WORD     ); CODE( XBIOStrap );
  83.  
  84.   PROCEDURE  XBIOS3w1l  ( p4           : LONGCARD;
  85.                           p3, p2, p1,
  86.                           fnkt         : WORD     ); CODE( XBIOStrap );
  87.  
  88.   PROCEDURE  XBIOS1l1w  ( p2           : WORD;
  89.                           p1           : LONGCARD;
  90.                           fnkt         : WORD     ); CODE( XBIOStrap );
  91.  
  92.   PROCEDURE  XBIOS2l1w  ( p3           : WORD;
  93.                           p2, p1       : LONGCARD;
  94.                           fnkt         : WORD     ); CODE( XBIOStrap );
  95.  
  96.   PROCEDURE  XBIOS2l2w  ( p4, p3       : WORD;
  97.                           p2, p1       : LONGCARD;
  98.                           fnkt         : WORD     ); CODE( XBIOStrap );
  99.  
  100.   PROCEDURE  XBIOS2l5w  ( p7, p6,
  101.                           p5, p4, p3   : WORD;
  102.                           p2, p1       : LONGCARD;
  103.                           fnkt         : WORD     ); CODE( XBIOStrap );
  104.  
  105.   PROCEDURE  XBIOS2l5w1l1w ( p9        : WORD;
  106.                              p8        : LONGCARD;
  107.                              p7, p6, p5,
  108.                              p4, p3    : WORD;
  109.                              p2, p1    : LONGCARD;
  110.                              fnkt      : WORD     ); CODE( XBIOStrap );
  111.  
  112.   (*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)
  113.  
  114.   PROCEDURE  BIOS0      ( fnkt         : WORD     ); CODE( BIOStrap );
  115.  
  116.   PROCEDURE  BIOS1w     ( p1, fnkt     : WORD     ); CODE( BIOStrap );
  117.  
  118.   PROCEDURE  BIOS2w     ( p2, p1, fnkt : WORD     ); CODE( BIOStrap );
  119.  
  120.   PROCEDURE  BIOS1l     ( p1           : LONGCARD;
  121.                           fnkt         : WORD     ); CODE( BIOStrap );
  122.  
  123.   PROCEDURE  BIOS1w1l   ( p2           : LONGCARD;
  124.                           p1, fnkt     : WORD     ); CODE( BIOStrap );
  125.  
  126.   PROCEDURE  BIOS1w1l3w ( p5, p4, p3   : WORD;
  127.                           p2           : LONGCARD;
  128.                           p1, fnkt     : WORD     ); CODE( BIOStrap );
  129.  
  130.   (*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)
  131.  
  132.   PROCEDURE  GEMDOS0    ( fnkt         : WORD     ); CODE( GEMDOStrap );
  133.  
  134.   PROCEDURE  GEMDOS1w   ( p1, fnkt     : WORD     ); CODE( GEMDOStrap );
  135.  
  136.   PROCEDURE  GEMDOS2w   ( p2, p1, fnkt : WORD     ); CODE( GEMDOStrap );
  137.  
  138.   PROCEDURE  GEMDOS1l   ( p1           : LONGCARD;
  139.                           fnkt         : WORD     ); CODE( GEMDOStrap );
  140.  
  141.   PROCEDURE  GEMDOS1w2l ( p3, p2       : LONGCARD;
  142.                           p1, fnkt     : WORD     ); CODE( GEMDOStrap );
  143.  
  144.   PROCEDURE  GEMDOS1w3l ( p4, p3, p2   : LONGCARD;
  145.                           p1, fnkt     : WORD     ); CODE( GEMDOStrap );
  146.  
  147.   PROCEDURE  GEMDOS1l1w ( p2           : WORD;
  148.                           p1           : LONGCARD;
  149.                           fnkt         : WORD     ); CODE( GEMDOStrap );
  150.  
  151.   PROCEDURE  GEMDOS1l2w ( p3, p2       : WORD;
  152.                           p1           : LONGCARD;
  153.                           fnkt         : WORD     ); CODE( GEMDOStrap );
  154.  
  155.   (*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)
  156.  
  157.   PROCEDURE  GEM0 ( ); CODE( GEMtrap );  (* Parameter in d0, d1 *)
  158.  
  159.  
  160. END  TRAPdefs.
  161.